home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / srot.z / srot
Encoding:
Text File  |  2002-10-03  |  16.6 KB  |  331 lines

  1.  
  2.  
  3.  
  4. SSSSRRRROOOOTTTT((((3333SSSS))))                                                              SSSSRRRROOOOTTTT((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSSSRRRROOOOTTTT, DDDDRRRROOOOTTTT, CCCCRRRROOOOTTTT, ZZZZRRRROOOOTTTT - Applies a real plane rotation or complex
  10.      coordinate rotation
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      Single precision
  14.  
  15.           Fortran:
  16.                CCCCAAAALLLLLLLL SSSSRRRROOOOTTTT ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s))))
  17.  
  18.           C/C++:
  19.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  20.                vvvvooooiiiidddd ssssrrrroooottttmmmm ((((iiiinnnntttt _n,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y,,,,
  21.                ffffllllooooaaaatttt _c,,,, ffffllllooooaaaatttt _s))));;;;
  22.  
  23.      Double precision
  24.  
  25.           Fortran:
  26.                CCCCAAAALLLLLLLL DDDDRRRROOOOTTTT _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s))))
  27.  
  28.           C/C++:
  29.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  30.                vvvvooooiiiidddd ddddrrrrooootttt ((((iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt _i_n_c_y,,,,
  31.                ddddoooouuuubbbblllleeee _c,,,, ddddoooouuuubbbblllleeee _s))));;;;
  32.  
  33.      Single precision complex
  34.  
  35.           Fortran:
  36.                CCCCAAAALLLLLLLL CCCCRRRROOOOTTTT ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s))))
  37.  
  38.           C/C++:
  39.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  40.                vvvvooooiiiidddd ccccrrrrooootttt ((((iiiinnnntttt _n,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_y,,,,
  41.                iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt _c,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_s))));;;;
  42.  
  43.           C/C++ STL:
  44.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  45.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  46.                vvvvooooiiiidddd ccccrrrrooootttt ((((iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>>
  47.                *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt _c,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_s))));;;;
  48.  
  49.      Double precision complex
  50.  
  51.           Fortran:
  52.                CCCCAAAALLLLLLLL ZZZZRRRROOOOTTTT _n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _c,,,, _s))))
  53.  
  54.           C/C++:
  55.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  56.                vvvvooooiiiidddd zzzzrrrrooootttt ((((iiiinnnntttt _n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_y,,,,
  57.                iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee _c,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_s))));;;;
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSRRRROOOOTTTT((((3333SSSS))))                                                              SSSSRRRROOOOTTTT((((3333SSSS))))
  71.  
  72.  
  73.  
  74.           C/C++ STL:
  75.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  76.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  77.                vvvvooooiiiidddd zzzzrrrrooootttt ((((iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>>
  78.                *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee _c,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_s))));;;;
  79.  
  80. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  81.      These routines are part of the SCSL Scientific Library and can be loaded
  82.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  83.      directs the linker to use the multi-processor version of the library.
  84.  
  85.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  86.      4 bytes (32 bits). Another version of SCSL is available in which integers
  87.      are 8 bytes (64 bits).  This version allows the user access to larger
  88.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  89.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  90.      only one of the two versions; 4-byte integer and 8-byte integer library
  91.      calls cannot be mixed.
  92.  
  93.      The C and C++ prototypes shown above are appropriate for the 4-byte
  94.      integer version of SCSL. When using the 8-byte integer version, the
  95.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  96.      file should be included.
  97.  
  98. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  99.      SSSSRRRROOOOTTTT/DDDDRRRROOOOTTTT applies a plane rotation matrix to a real sequence of ordered
  100.      pairs:
  101.  
  102.           (_x_i, _y_i), for all _i = 1, 2, ..., _n.
  103.  
  104.      CCCCRRRROOOOTTTT/ZZZZRRRROOOOTTTT applies a complex coordinate rotation to a complex sequence of
  105.      ordered pairs.
  106.  
  107.      These routines have the following arguments:
  108.  
  109.      _n         Integer.  (input)
  110.                Number of ordered pairs (planar points in SSSSRRRROOOOTTTT) to be rotated.
  111.                If _n <= 0, these routines return without computation.
  112.  
  113.      _x         Array of dimension (_n-1) * |_i_n_c_x| + 1.  (input and output)
  114.                SSSSRRRROOOOTTTT: Single precision array.
  115.                DDDDRRRROOOOTTTT: Double precision array.
  116.                CCCCRRRROOOOTTTT: Single precision complex array.
  117.                ZZZZRRRROOOOTTTT: Double precision complex array.
  118.                On input, array _x contains the _x-coordinate of each planar
  119.                point to be rotated.  On output, array _x contains the
  120.                _x-coordinate of each rotated planar point.
  121.  
  122.      _i_n_c_x      Integer.  (input)
  123.                Increment between elements of _x.  If _i_n_c_x = 0, the results will
  124.                be unpredictable.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSRRRROOOOTTTT((((3333SSSS))))                                                              SSSSRRRROOOOTTTT((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      _y         Array of dimension (_n-1) * |_i_n_c_y| + 1.  (input and output)
  141.                SSSSRRRROOOOTTTT: Single precision array.
  142.                DDDDRRRROOOOTTTT: Double precision array.
  143.                CCCCRRRROOOOTTTT: Single precision complex array.
  144.                ZZZZRRRROOOOTTTT: Double precision complex array.
  145.                On input, array _y contains the _y-coordinate of each planar
  146.                point to be rotated.  On output, array _y contains the
  147.                _y-coordinate of each rotated planar point.
  148.  
  149.      _i_n_c_y      Integer.  (input)
  150.                Increment between elements of _y.  If _i_n_c_y = 0, the results will
  151.                be unpredictable.
  152.  
  153.      _c         Cosine of the angle of rotation, usually calculated using
  154.                SSSSRRRROOOOTTTTGGGG(3S) or CCCCRRRROOOOTTTTGGGG(3S).  (input)
  155.                SSSSRRRROOOOTTTT: Single precision.
  156.                DDDDRRRROOOOTTTT: Double precision.
  157.                CCCCRRRROOOOTTTT: Single precision.
  158.                ZZZZRRRROOOOTTTT: Double precision.
  159.  
  160.      _s         Sine of the angle of rotation, usually calculated using SSSSRRRROOOOTTTTGGGG.
  161.                (input)
  162.                SSSSRRRROOOOTTTT: Single precision.
  163.                DDDDRRRROOOOTTTT: Double precision.
  164.                CCCCRRRROOOOTTTT: Single precision complex.
  165.                ZZZZRRRROOOOTTTT: Double precision complex.
  166.  
  167. NNNNOOOOTTTTEEEESSSS
  168.      SSSSRRRROOOOTTTT/DDDDRRRROOOOTTTT are Level 1 Basic Linear Algebra Subprograms (Level 1 BLAS).
  169.      CCCCRRRROOOOTTTT/ZZZZRRRROOOOTTTT are extensions to level 1 BLAS.
  170.  
  171.      SSSSRRRROOOOTTTT/DDDDRRRROOOOTTTT applies the following plane rotation to each pair of elements
  172.      (_x_i, _y_i):
  173.  
  174.           _    _      _      _     _    _
  175.           | x  |      | c  s |     | x  |
  176.           |  i | <-   |      |  *  |  i |
  177.           | y  |      |-s  c |     | y  |
  178.           |  i |      |      |     |  i |
  179.           -    -      -      -     -    -
  180.  
  181.  
  182.      for i = 1,...,n
  183.  
  184.      CCCCRRRROOOOTTTT/ZZZZRRRROOOOTTTT applies a complex coordinate rotation to each pair of elements
  185.      (_x_i, _y_i):
  186.  
  187.           _    _      _      _     _    _
  188.           | x  |      | c  s |     | x  |
  189.           |  i | <-   | _    |  *  |  i |
  190.           | y  |      |-s  c |     | y  |
  191.           |  i |      |      |     |  i |
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSRRRROOOOTTTT((((3333SSSS))))                                                              SSSSRRRROOOOTTTT((((3333SSSS))))
  203.  
  204.  
  205.  
  206.           -    -      -      -     -    -
  207.                 _
  208.           where s represents the complex conjugate of s.
  209.  
  210.  
  211.      If coefficients _c and _s satisfy _c_2 + |_s|_2 = 1.0, the rotation matrix is
  212.      orthogonal, and the transformation is called a _G_i_v_e_n_s _p_l_a_n_e _r_o_t_a_t_i_o_n.
  213.  
  214.      To calculate the Givens coefficients _c and _s from a two-element vector to
  215.      determine the angle of rotation, use SSSSRRRROOOOTTTTGGGG(3S) or CCCCRRRROOOOTTTTGGGG(3S).
  216.  
  217.      When working backward (_i_n_c_x < 0 or _i_n_c_y < 0), each routine starts at the
  218.      end of the vector and moves backward, as follows:
  219.  
  220.      Fortran:
  221.  
  222.           x(1-incx * (n-1)), x(1-incx * (n-2)), ..., x(1)
  223.  
  224.           y(1-incy * (n-1)), y(1-incy * (n-2)), ..., y(1)
  225.  
  226.  
  227.      C/C++:
  228.  
  229.           x[-incx * (n-1)], x[-incx * (n-2)], ..., x[0]
  230.  
  231.           y[-incy * (n-1)], x[-incy * (n-2)], ..., y[0]
  232.  
  233.  
  234.    DDDDaaaattttaaaa TTTTyyyyppppeeeessss
  235.      The following data types are described in this documentation:
  236.  
  237.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                     DDDDaaaattttaaaa ttttyyyyppppeeee
  238.  
  239.      Fortran:
  240.  
  241.           Array dimensioned _n           xxxx((((nnnn))))
  242.  
  243.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  244.  
  245.           Single precision              RRRREEEEAAAALLLL
  246.  
  247.           Double precision              DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN
  248.  
  249.           Single precision complex      CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  250.  
  251.           Double precision complex      DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  252.  
  253.      C/C++:
  254.  
  255.           Array dimensioned _n           xxxx[[[[_n]]]]
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SSSSRRRROOOOTTTT((((3333SSSS))))                                                              SSSSRRRROOOOTTTT((((3333SSSS))))
  269.  
  270.  
  271.  
  272.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  273.  
  274.           Single precision              ffffllllooooaaaatttt
  275.  
  276.           Double precision              ddddoooouuuubbbblllleeee
  277.  
  278.           Single precision complex      ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  279.  
  280.           Double precision complex      ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  281.  
  282.      C++ STL:
  283.  
  284.           Array dimensioned _n           xxxx[[[[_n]]]]
  285.  
  286.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  287.  
  288.           Single precision              ffffllllooooaaaatttt
  289.  
  290.           Double precision              ddddoooouuuubbbblllleeee
  291.  
  292.           Single precision complex      ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>>
  293.  
  294.           Double precision complex      ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>>
  295.  
  296. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  297.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S), SSSSRRRROOOOTTTTGGGG(3S), SSSSRRRROOOOTTTTMMMM(3S), SSSSRRRROOOOTTTTMMMMGGGG(3S)
  298.  
  299.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  300.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  301.      Linear Algebra Subprograms Technical Forum.
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.                                                                         PPPPaaaaggggeeee 5555
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.